﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace GRTVPluginConsole.Camera
{
    public abstract class AutoCameraEngine
    {
        Thread myThread;
        
        public AutoCameraEngine()
        {
        }

        public void Start()
        {
            // Déclaration du thread


            // Instanciation du thread, on spécifie dans le 
            // délégué ThreadStart le nom de la méthode qui
            // sera exécutée lorsque l'on appele la méthode
            // Start() de notre thread.
            myThread = new Thread(new ThreadStart(ThreadLoop));

            // Lancement du thread
            myThread.Start();
        }
        public void Abort()
        {
            myThread.Abort();
        }
        private void ThreadLoop()
        {
            while (true)
            {
                try
                {
                    DoCheck();
                }
                catch (Exception ex) { }
                Thread.Sleep(100);
            }
        }

        public abstract void DoCheck();
        public abstract void Reset();
    }
}
